Advances in telecommunications and cell phone technology allow for the creation of many new types of applications. One class of applications, referred to as Location-Based Services (LBS), use the knowledge of the historical or real-time position of a mobile device to provide a service. Global Positioning System (GPS)-enabled cell phones are currently one of the more popular devices that provide LBS to end users.
These devices continuously become more advanced, featuring functionality that was state-of-the-art on desktop computers just a few years ago. Not only can these cell phones tell where a user is, but they can deliver on-demand text, sound, and video to the user. By combining the knowledge of the individual's physical location with these multimedia services, many different types of LBS can be realized. Some LBS include location-based messaging for emergency alerts such as traffic accidents or evacuation notices, location-based marketing of products or services to consumers, and real-time navigation instructions while driving or using public transportation.
The needs of LBS applications differ depending on the application domain and the purpose of the application. However, the minimization of costs, such as power consumption during the calculation and processing of location data, and network traffic to communicate location data to other locations, is always desired. Energy drains come from wireless communications, signal processing for wireless positioning methods, such as GPS, and the processor cycles needed to analyze and process location data at the application level. Existing LBS applications, assume fixed-position recalculation rates by the mobile device.
Positioning systems can utilize a number of different localizing technologies, including GPS, cellular network trilateration, or triangulation, RF-ID, Wi-Fi, Ultra-Wide Band (UWB), and hybrids of these and other technologies. In all of these systems, the position of the mobile device is calculated either on the device or on a centralized server. Hybrid systems can use assistance from the opposite party (i.e. a mobile device can calculate position information with assistance from the server, and the server can calculate position information with assistance from the mobile device). There is a cost associated with each position calculated on a server. Therefore, it is in the system's best interest to minimize the number of locations calculated either on the device or on a server.
A common problem found in LBS applications is the continuous querying of the positioning system when the system is temporarily unavailable, or when the user is immobile for extended periods of time. For example, if an application continues to request GPS fixes from a mobile phone when GPS signal levels are not sufficient to calculate the phone's location (e.g. the user is indoors), the phone will waste significant resources, such as battery energy and CPU cycles, before a timeout value is reached. Alternately, if a user is inside a building and a high-sensitivity GPS receiver is able to continuously calculate the user's location, significant battery energy is expended to repeatedly calculate the same general position.
Frequent locations recalculations will yield high accuracy, but at the cost of significant energy consumption. In contrast, infrequent position recalculations increase battery life, but are unable to accurately report real-time device location or the device's travel path while the user is traveling. Therefore, a method is needed that intelligently manages the rate of location calculation attempts to consume as little energy as possible based on real-time application-level needs.